/**
 * Copyright(c) 2014 Xunton Solutions
 *
 * History:
 *   15-1-17 下午5:16 Created by dwzhang
 */
package com.jade.modules.cms;

import java.util.List;

import com.jade.framework.base.criterion.Criteria;
import com.jade.framework.base.util.PagingList;

/**
 * 内容分类数据访问接口。
 *
 * @author <a href="mailto:dwzhang@xunton.com">dwzhang</a> 
 * @version 1.0 15-1-17 下午5:16
 */
public interface CategoryDao
{
    /**
     * 添加内容分类。
     *
     * @param cmsCategory 分类信息
     */
    public void add(CmsCategory cmsCategory)
            throws CmsException;

    /**
     * 更新内容分类。
     *
     * @param cmsCategory 分类信息
     */
    public void update(CmsCategory cmsCategory)
            throws CmsException;

    /**
     * 获取内容分类信息。
     *
     * @param id:内容分类id
     * @return 内容信息。
     */
    public CmsCategory get(long id);

    /**
     * 删除内容分类。
     *
     * @param cmsCategory 分类信息
     */
    public void remove(CmsCategory cmsCategory)
            throws CmsException;

    /**
     * 分页查询内容分类。
     *
     * @param ownerType 所有者类型
     * @param ownerId 所有者标识
     * @param criteria:查询条件
     * @return 满足条件的内容分类。
     */
    public PagingList<CmsCategory> query(String ownerType, String ownerId, Criteria criteria);

    /**
     * 查询内容分类.
     *
     * @param ownerType 所有者类型
     * @param ownerId 所有者标识
     * @param criteria:查询条件
     * @return 分类列表。
     */
    public List<CmsCategory> list(String ownerType, String ownerId, Criteria criteria);

    /**
     * 查询内容分类．
     *
     * @param criteria:查询条件
     * @return 分类列表。
     */
    public PagingList<CmsCategory> query(Criteria criteria);
}
